﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using System.Web.Script.Services;
using EntitiesLayer.Entities;
using BusinnesLayer.LogicBusiness;

namespace ClinicaSanPablo
{
    public partial class SeguimientoNoConformidadMuestra : System.Web.UI.Page
    {
        string fileName;
        string localPath;
        string savePath;
        string CodNoConfor;
        private static NoConformidadbl p = new NoConformidadbl();
        private NoConformidadbl pBl = new NoConformidadbl();
        private static Combosbl ptb = new Combosbl();
        private static System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string DeleteAccionCorrectiva(string CodAccionCorr)
        {
            try
            {
                NoConformidadbl del = new NoConformidadbl();

                NoConformidad delete = new NoConformidad
                {
                    CodAccionesCorrectivas = CodAccionCorr,
                };
                del.DeleteAccionCorrectiva(delete);

                var data = new
                {
                    resultado = true
                };
                return jsonSerializer.Serialize(data);
            }
            catch (Exception ex)
            {
                var data = new
                {
                    resultado = false
                };
                return jsonSerializer.Serialize(data);
            }

        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string DeleteAccionPreventiva(string CodAccionPrev)
        {
            try
            {
                NoConformidadbl del = new NoConformidadbl();

                NoConformidad delete = new NoConformidad
                {
                    CodAccionesPreventiva = CodAccionPrev,
                };
                del.DeleteAccionPreventiva(delete);

                var data = new
                {
                    resultado = true
                };
                return jsonSerializer.Serialize(data);
            }
            catch (Exception ex)
            {
                var data = new
                {
                    resultado = false
                };
                return jsonSerializer.Serialize(data);
            }

        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboEstadoAnalisisCausa()
        {
            List<Combos> getSiRe = ptb.GetAllComboEstadoAnalisisCausa();
            return jsonSerializer.Serialize(getSiRe);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string UpdateAccionCorrectiva(string CodAccionCorrec, string DescripAccion, string ResponsableAccion, string CodEstadoAcc, string DescripObser, string Usuactualiza, string CodanaCausa)
        {
            try
            {
                NoConformidadbl up = new NoConformidadbl();

                NoConformidad updateSegQr = new NoConformidad
                {
                    CodAccionesCorrectivas = CodAccionCorrec,
                    DescripAccion = DescripAccion,
                    ResponsableAccion = ResponsableAccion,
                    CodEstadoAnaCausa = CodEstadoAcc,
                    DescripObservacionAcCorrectiva = DescripObser,
                    FechaActualizacionAccCorre = Convert.ToDateTime(DateTime.Now.ToShortDateString()),
                    UsuActualizoAccCorre = Usuactualiza,
                    CodAnalisisCausa = CodanaCausa,
                };
                up.UpdateAccionCorrectiva(updateSegQr);

                var data = new
                {
                    resultado = true
                };
                return jsonSerializer.Serialize(data);
            }
            catch (Exception ex)
            {
                var data = new
                {
                    resultado = false
                };
                return jsonSerializer.Serialize(data);
            }
        }


        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string UpdateAccionPreventiva(string CodAccionPrev, string DescripAccionPrev, string ResponsableAccionPrev, string CodEstadoAcc, string DescripObserPrev, string UsuactualizaPrev, string CodanaCausa)
        {
            try
            {
                NoConformidadbl up = new NoConformidadbl();

                NoConformidad updateSegQr = new NoConformidad
                {
                    CodAccionesPreventiva = CodAccionPrev,
                    DescripAccionPrev = DescripAccionPrev,
                    ResponsableAccionPrev = ResponsableAccionPrev,
                    CodEstadoAnaCausa = CodEstadoAcc,
                    DescripObservacionPrev = DescripObserPrev,
                    FechaActualizacionAccPrev = Convert.ToDateTime(DateTime.Now.ToShortDateString()),
                    UsuActualizoAccPrev = UsuactualizaPrev,
                    CodAnalisisCausa = CodanaCausa,
                };
                up.UpdateAccionPreventiva(updateSegQr);

                var data = new
                {
                    resultado = true
                };
                return jsonSerializer.Serialize(data);
            }
            catch (Exception ex)
            {
                var data = new
                {
                    resultado = false
                };
                return jsonSerializer.Serialize(data);
            }
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            CodNoConfor = Request.QueryString["CodNoConfor"];
            LblRegistradoPor.Text = "Santana Segura Javier";
            LblUsuarioSesion.Value = Session["Nombres"].ToString();
            try
            {
                NoConformidad p = pBl.MostrarNoConformidad(CodNoConfor);
                LblDescripcion.Text = p.DescripNoConformidad;
                LblDirigidoA.Text = p.DirigidoA;
            }
            catch (Exception ex)
            {
            }

            try
            {
                NoConformidad p = pBl.MostrarNoAnalisisCausa(CodNoConfor);

                LblCodAnaCausa.Value = p.CodAnalisisCausa;
                if (LblCodAnaCausa.Value == "")
                {
                    LblFecha.Text = Convert.ToString(DateTime.Now.ToShortDateString());
                    TxtRegistradoPor.Text = Session["Nombres"].ToString();
                }
                else
                {
                    LblCodAnaCausa.Value = p.CodAnalisisCausa;
                    LblFecha.Text = Convert.ToString(p.FechaRegistroAccion.ToShortDateString());
                    TxtDescripcionAnaCausa.Text = p.DescripAccion;
                    TxtRegistradoPor.Text = p.RegPorSegNoConformidad; 
                }
            }
            catch (Exception ex)
            {

            }

        }

        private void ClearControls1()
        {
            TxtDescripcionAnaCausa.Text = "";
            TxtRegistradoPor.Text = "";
        }

        private void ClearControls2()
        {
            txtAccionCorrectiva.Text = "";
            txtresponsableCorrectiva.Text = "";
            txtobservacionCorrectiva.Text = "";
        }

        private void ClearControls3()
        {
            TxtDescripAccPrev.Text = "";
            TxtRespAccPrev.Text = "";
            TxtDescripObsAccPrev.Text = "";
        }


        protected void Registrar_Click(object sender, EventArgs e)
        {
            try
            {
                NoConformidad SegNoConformidad = new NoConformidad();
                {
                    SegNoConformidad.CodNoConformidad = CodNoConfor;
                    SegNoConformidad.FechaSegNoConformidad = Convert.ToDateTime(LblFecha.Text);
                    SegNoConformidad.DescripSegNoConformidad = TxtDescripcionAnaCausa.Text;
                    SegNoConformidad.RegPorSegNoConformidad = Session["Nombres"].ToString();
                };
                int valor = p.InsertSegNoConformidad(SegNoConformidad);
                LblCodAnaCausa.Value = valor.ToString();
                if (valor > 0)
                {
                    string script = @"<script type='text/javascript'>alert('Se Guardo');</script>";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                    ClearControls1();
                }
                else
                {
                    string script = @"<script type='text/javascript'>alert('Error al Guardar');</script>";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                }
            }
            catch (Exception ex)
            {

            }
        }

        protected void AnadirRespuesta_Click(object sender, EventArgs e)
            {
                string CboEstadoAnaCau = (string)Request.Form["ctl00$master$CboEstadoAnaCausa"];

                if (uploadFile1.HasFile)
                {
                    fileName = uploadFile1.FileName;
                    savePath = Server.MapPath("~/archivos/") + fileName;
                    localPath = "/archivos/" + fileName;
                    uploadFile1.SaveAs(savePath);
                }

                try
                {
                    NoConformidad AccionCorrectiva = new NoConformidad();
                    {
                        AccionCorrectiva.CodAnalisisCausa = LblCodAnaCausa.Value;
                        AccionCorrectiva.DescripAccion = txtAccionCorrectiva.Text;
                        AccionCorrectiva.ResponsableAccion = LblRegistroPor.Value;
                        AccionCorrectiva.DescripObservacion = txtobservacionCorrectiva.Text;
                        AccionCorrectiva.FechaRegistroAccion = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                        AccionCorrectiva.CodEstadoAnaCausa = CboEstadoAnaCau;
                        AccionCorrectiva.UsuarioRegistroAccionCorr = Session["Nombres"].ToString();
                        

                        if (fileName != null)
                        {
                            AccionCorrectiva.NomArchivo = fileName;
                        }
                        else
                        {
                            AccionCorrectiva.NomArchivo = "";
                        }
                        if (localPath != null)
                        {
                            AccionCorrectiva.RutaArchivo = localPath;
                        }
                        else
                        {
                            AccionCorrectiva.RutaArchivo = "";
                        }
                    };
                    p.InsertAccionCorrectiva(AccionCorrectiva);
                    ClearControls2();
                }
                catch (Exception ex)
                {

                }
            }

        protected void AnadirAccionPrev_Click(object sender, EventArgs e)
        {
            string CboEstadoAnaCau = (string)Request.Form["ctl00$master$CboEstadoAnaCausa"];

            if (FileUpload2.HasFile)
            {
                fileName = FileUpload2.FileName;
                savePath = Server.MapPath("~/archivos/") + fileName;
                localPath = "/archivos/" + fileName;
                FileUpload2.SaveAs(savePath);
            }

            try
            {
                NoConformidad AccionPreventiva = new NoConformidad();
                {
                    AccionPreventiva.CodAnalisisCausa = LblCodAnaCausa.Value;
                    AccionPreventiva.DescripAccionPrev = TxtDescripAccPrev.Text;
                    AccionPreventiva.ResponsableAccionPrev = LblRegistroPor2.Value;
                    AccionPreventiva.DescripObservacionPrev = TxtDescripObsAccPrev.Text;
                    AccionPreventiva.FechaRegistroAccionPrev = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                    AccionPreventiva.CodEstadoAnaCausa = CboEstadoAnaCau;
                    AccionPreventiva.UsuarioRegistroAccionPrev = Session["Nombres"].ToString();


                    if (fileName != null)
                    {
                        AccionPreventiva.NomArchivo = fileName;
                    }
                    else
                    {
                        AccionPreventiva.NomArchivo = "";
                    }
                    if (localPath != null)
                    {
                        AccionPreventiva.RutaArchivo = localPath;
                    }
                    else
                    {
                        AccionPreventiva.RutaArchivo = "";
                    }
                };
                p.InsertAccionPreventiva(AccionPreventiva);
                ClearControls3();
            }
            catch (Exception ex)
            {

            }
        }
    }
}